A variety of controls are used to monitor and control various types of machine motion. For example, processor based controls, such as computer numerical controls or CNCs, are used to control the motion of machines, such as machine tools or transfer line equipment, that are used in a variety of manufacturing environments. A CNC, for instance, may be used to control the movements of a cutter on a machine tool when machining a part or component for use in the manufacture of a given product.
CNC-type controllers have become very popular due, in part, to their adaptability and relative ease-of-use in controlling machine motion. When machining a part, for example, a machine motion control program, e.g., part program, simply can be loaded into the CNC which then causes the machine to move according to the commands established by the part program. The control is designed to read the part program instructions and provide appropriate outputs to the various servos, stepper motors, etc. that physically move the components of the machine. The CNC also may be used to monitor multiple items related to motion control. For example, in a closed loop type system, a variety of sensors are disposed on the machine to provide outputs to the CNC indicative of various parameters, such as position and speed, so the CNC can compare the sensed parameters with the programmed parameters to detect and correct for any error between the values. As is understood by those of ordinary skill in the art, CNC-type controllers are able to process a wide variety of data related to controlling machine motion, monitoring machine motion, storing and manipulating of part program data, etc.
Traditionally, CNCs have been configured in various ways depending on the CNC design as established by the CNC manufacturer and/or end user. For instance, CNCs typically have included a visual interface, such as a CRT, and a keyboard that allow machine control programs to be entered or edited directly at the CNC. In some systems, machine control programs can be prepared offsite at a workstation, such as a personal computer, that is configured to permit an operator to prepare motion control programs in a language/syntax that is recognizable and useable by the CNC. The program is then loaded onto a storage medium, such as a punch tape, magnetic tape or diskette, and physically taken to the CNC where it is downloaded for use by the CNC in controlling machine motion. For some applications, the program may be transferred electronically from the personal computer to the CNC for execution. In any of these situations, the motion control program must be prepared in a format recognizable and useable by the CNC.
Simultaneously with the development of CNC-type machine controllers, computer networks and personal computers have evolved. Computer networks are now available to permit linking multiple personal computers and other devices across a single network. For example, local area networks (LANs), such as an Ethernet network, can be used to connect multiple personal computers and data servers with each other and with other devices, e.g., printers and various instruments. The common network allows data to be transferred between the various devices linked to the network.
To permit the networked personal computers and other devices to communicate, it is necessary that the devices have compatible application programming interfaces (APIs) to permit data exchange. In the personal computer area, some common API choices are "C" application programming interfaces (CAPI), dynamic data exchange (DDE.TM.) and object linking and embedding (OLE) automation. Each of these choices has its own advantages and disadvantages depending on the PC operating systems, requirements for support on multiple operating systems, and technologies involved.
For example, DDE has become a very popular data exchange mechanism between Windows.TM.-based applications. When using personal computers having Windows-based operating systems, such as Windows NT.TM. and Windows 95.TM., DDE may be the data exchange mechanism of choice.
With respect to both stand alone personal computers and networked personal computers, the trend has been toward utilization of Windows-based applications. Consequently, a large percentage of personal computers presently have operating systems that utilize Windows-based applications. In many manufacturing and other machine control environments, it would be advantageous to network one or more CNCs with one or more PC based workstations using Windows. Heretofore, however, machine control and CNC command protocols have not been amenable for use with Windows-based applications. Although the DDE data exchange mechanism, for instance, has been used routinely with Windows to accomplish process-to-process communications, this protocol has not been available for networked CNCs. (It should be noted that DDE, Windows, WindowsNT and Windows95 are trademarks of Microsoft Corporation.)
By, among other things, rendering Windows-based applications compatible with CNCs and CNC protocols, there potentially is a wide variety of network topologies that become possible. For example, in certain manufacturing environments, it would be advantageous to network one personal computer based man-machine interface, utilizing a Windows-based application, with multiple CNCs. This would permit the reading and writing of data and transfer of commands over a common network to the CNCs. In other environments, it would be advantageous to network multiple man-machine interfaces with a single CNC. Ultimately, an open M-to-N topology linking M CNCs with N man-machine interfaces over a commonly used network could provide great convenience and adaptability for supporting many CNC/manufacturing environments as well as supporting other intercommunication between additional applications and devices linked to the common network.
The present invention solves the problem of networking one or more man-machine interfaces, utilizing Windows-based applications, with one or more CNCs over a common network.